import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.List;
import java.util.ArrayList;

/**
 * Esta es L a uncion de los enemigos Dentro dle Juego
 * 
 * @author (Alberto Navarro) 
 * @version (1.4)
 */
public class Enemigo extends Movimientos
{
  protected int direcciony;
  protected int dibujo_act;
  protected Actor colicion;
   
 /**
     * este es el constructor para los enemigos en general
     */
   public Enemigo()
   {
      direcciony=0; 
      this.dibujo_act=0;
   }
     
   /**
     * este es el metodo que les crea a todo el sentido de gravedad
     */
    public boolean caeusuario()
    {    
         Actor mosaico;
        
         List piso =  super.getWorld().getObjectsAt(this.getX(),  this.getY()+40, Plataforma.class);
         if(!piso.isEmpty())
          {
             return (true);
          }
                
        if (direcciony>0)
        { //interseccion
          mosaico = this.getOneIntersectingObject(Plataforma.class);
          
          if (mosaico != null)
          {
            this.setLocation(this.getX(), this.getY()-direcciony);
             direcciony--;
           }
           else
           {
             direcciony=0;
             this.dibujo_act=0;
             
            }
        }   
        else
        if (this.getY()<550)
            this.setLocation(this.getX(), this.getY()+20);
            
        return(true);
    } 
    
    /**
     * este es el metodo que se llama cuando pierde por el contacto de algun enemigo.
     */
     public void regresa_todo()
     {
           World mundo=getWorld(); 
         ((Mundo)mundo).reseteanivel();
          ((Mundo)mundo).cambiaN(7);
           getWorld().removeObject(colicion);
             ((Mundo)mundo).borrartodo();
             ((Mundo)mundo).cambiaScrollgameover();
              mundo.addObject(new Flecha(),750,550);
     }
     /**
      * aqui solamente se menciona la clase que se va a utilizar en todos los metodos que herenden de ella para utilizar el polimorfismo
      */
      
    
}
